package MyAdmin.Controller;

import MyFramePro.Domain.Dto.TagDTO;
import MyFramePro.Domain.Entity.Tag;
import MyFramePro.Domain.ResponseResult;
import MyFramePro.Domain.Vo.TagVo;
import MyFramePro.Service.Impl.TagServiceImpl;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping(value = "/content/tag")
public class TagController {

    @Resource
    private TagServiceImpl tagService;

    /**
     * 这里是标签的分页功能
     */
//    @PreAuthorize("@myPer.hasAuthority('content:tag:list')") //这里进行传入权限信息
    @GetMapping(value = "/list")
    public ResponseResult list(Integer pageNum, Integer pageSize, TagDTO tagDTO){

        return tagService.pageTagList(pageNum,pageSize,tagDTO);
    }


    /**
     * 这里是新增标签的功能
     */
    @PostMapping
    public ResponseResult updateTag(@RequestBody Tag tag){

        return tagService.addTag(tag);
    }


    /**
     * 这里是删除对应标签的功能
     */
    @DeleteMapping(value = "{id}")
    public ResponseResult deleteTag(@PathVariable("id") Long id){

        return tagService.deleteTag(id);
    }


    /**
     * 这里是获取标签信息的功能
     */
    @GetMapping(value = "{id}")
    public ResponseResult getTagInfo(@PathVariable("id") Long tagId){

        return tagService.getTaginfo(tagId);
    }


    /**
     * 这里是修改标签的功能
     */
    @PutMapping
    public  ResponseResult updateTag(@RequestBody TagDTO tagDTO){

        return tagService.updateTag(tagDTO);
    }

    /**
     * 这里是查询所有标签接口的功能
     */
    @GetMapping(value = "/listAllTag")
    public ResponseResult getListAllTag(){

        List<TagVo>  tagList = tagService.getListAllTag();
        return ResponseResult.okResult(tagList);
    }

}
